home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-02-21 | 10.4 KB | 473 lines |
- 10 REM ***Rabbit, Rabbit, Rabbit***
- 15 SCREEN 1,0:CLS:KEY OFF: COLOR 8,0
- 20 DEF FNCEN$(V$,X)=SPACE$((X-LEN(V$))/2)+V$
- 25 LOCATE 12,1:PRINT FNCEN$("RABBIT",40)
- 30 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 35 PRINT FNCEN$("(C) COPYRIGHT 1985 George Furiya",40)
- 40 PRINT FNCEN$("All Rights Reserved",40)
- 45 FOR K=1 TO 2500:NEXT K
- 50 CLS
- 55 FOR A=0 TO 20
- 60 OUT 66,A:OUT 66,A
- 65 OUT 97,(INP(97) OR 3)
- 70 NEXT A
- 75 SOUND 37,0
- 80 CLS
- 85 LINE(160,30)-(80,100)
- 90 LINE-(160,170)
- 95 LINE-(240,100)
- 100 LINE-(160,30)
- 105 FOR V=30 TO 170 STEP 2
- 110 PSET(160,V)
- 115 NEXT V
- 120 LINE(114,70)-(160,170)
- 125 LINE-(206,70)
- 130 GOSUB 30000 '*** <Textpad> ***
- 135 PRINT FNCEN$("RABBIT begins with KITE BASE.",40)
- 140 FOR K=1 TO 1500:NEXT K
- 145 FOR Q=0 TO 41
- 150 LINE(114,70)-(80+Q,100-0.37*Q)
- 155 LINE-(160,170)
- 160 LINE(114,70)-(80+Q,100-0.37*Q),0
- 165 LINE-(160,170),0
- 170 NEXT Q
- 175 FOR Q=0 TO 39
- 180 LINE(114,70)-(122+Q,85-0.38*Q)
- 185 LINE-(160,170)
- 190 LINE(114,70)-(121+Q,85-0.38*Q)
- 195 LINE-(160,170)
- 200 NEXT Q
- 205 LINE(161,70)-(161,169),0
- 210 FOR K=1 TO 750:NEXT K
- 215 FOR Q=0 TO 41
- 220 LINE(206,70)-(240-Q,100-0.37*Q)
- 225 LINE-(160,170)
- 230 LINE(206,70)-(240-Q,100-0.37*Q),0
- 235 LINE-(160,170),0
- 240 NEXT Q
- 245 FOR Q=0 TO 39
- 250 LINE(206,70)-(198-Q,85-0.38*Q)
- 255 LINE-(160,170)
- 260 LINE(206,70)-(199-Q,85-0.38*Q)
- 265 LINE-(160,170)
- 270 NEXT Q
- 275 LINE(160,70)-(160,170),0
- 280 FOR K=1 TO 750:NEXT K
- 285 GOSUB 30000 '*** <Textpad> ***
- 290 PRINT FNCEN$("Your turn to fold KITE BASE. I'll wait.",40)
- 295 FOR K=1 TO 1500:NEXT K
- 300 GOSUB 30000 '*** Textpad ***
- 305 PRINT FNCEN$("Press <C> to continue.",40)
- 310 A$=INKEY$:IF A$="" GOTO 310
- 315 IF A$="C" OR A$="c" GOTO 325
- 320 GOTO 285
- 325 GOSUB 30000 '***Textpad***
- 330 PRINT FNCEN$("We proceed by folding this corner",40)
- 335 FOR K=1 TO 750:NEXT K
- 340 FOR K=1 TO 15
- 345 PSET(160,25):DRAW"E5 L4 U7 L2 D7 L4 F5" '///ARROW DOWN///
- 350 PAINT(160,20)
- 355 FOR M=1 TO 25:NEXT M
- 360 CIRCLE(160,19),7,0
- 365 PAINT(160,19),0
- 370 NEXT K
- 375 GOSUB 30000 '***Textpad***
- 380 PRINT FNCEN$("down to this point,",40)
- 385 FOR K=1 TO 750:NEXT K
- 390 FOR K=1 TO 15
- 395 CIRCLE(160,110),5,0
- 400 LINE(158,110)-(162,110),0
- 405 LINE(160,108)-(160,112),0
- 410 FOR M=1 TO 25:NEXT M
- 415 CIRCLE(160,110),5
- 420 LINE(158,110)-(162,110)
- 425 LINE(160,108)-(160,112)
- 430 NEXT K
- 435 LINE(160,100)-(160,120),0
- 440 FOR K=1 TO 750:NEXT K
- 445 GOSUB 30000 '***Textpad***
- 450 PRINT FNCEN$(" SO!",40)
- 455 FOR K=1 TO 750:NEXT K
- 460 FOR V=30 TO 71
- 465 LINE(160,V)-(114,70),0
- 470 LINE(160,V+1)-(114,70)
- 475 LINE(160,V-2)-(114,70),0
- 480 LINE(160,V)-(206,70),0
- 485 LINE(160,V+1)-(206,70)
- 490 LINE(160,V-2)-(206,70),0
- 495 NEXT V
- 500 FOR V=71 TO 110
- 505 LINE(160,V)-(114,70),0
- 510 LINE(160,V)-(206,70),0
- 515 LINE(160,V-1)-(114,70)
- 520 LINE(160,V-1)-(206,70)
- 525 NEXT V
- 530 LINE(114,70)-(160,110),0
- 535 LINE-(206,70),0
- 540 FOR K=1 TO 750:NEXT K
- 545 GOSUB 30000 '*** Textpad ***
- 550 PRINT FNCEN$("Press <C> to continue.",40)
- 555 A$=INKEY$:IF A$="" GOTO 555
- 560 IF A$="C" OR A$="c" GOTO 570
- 565 GOTO 545
- 570 GOSUB 30000 '***Textpad***
- 575 PRINT FNCEN$("With a penknife or a pair of scissors,",40)
- 580 FOR K=1 TO 1000:NEXT K
- 585 FOR K=1 TO 15
- 590 LINE(153,178)-(167,199),0,BF
- 595 FOR M=1 TO 25:NEXT M
- 600 LINE(160,178)-(159,187)
- 605 LINE-(160,196)
- 610 LINE-(161,187)
- 615 LINE-(160,178)
- 620 CIRCLE(157,196),3,3,,,1
- 625 CIRCLE(163,196),3,3,,,1
- 630 NEXT K
- 635 FOR K=1 TO 750:NEXT K
- 640 GOSUB 30000 '***Textpad***
- 645 PRINT FNCEN$("cut along this line",40)
- 650 FOR K=1 TO 750:NEXT K
- 655 FOR K=1 TO 25
- 660 LINE(160,110)-(160,169),1
- 665 FOR M=1 TO 25:NEXT M
- 670 LINE(160,110)-(160,170),0
- 675 NEXT K
- 680 GOSUB 30000 '***Textpad***
- 685 PRINT FNCEN$("to separate my ears.",40)
- 690 FOR K=1 TO 750:NEXT K
- 695 FOR V=169 TO 110 STEP -1
- 700 PSET(160,V),1
- 705 FOR M=1 TO 20:NEXT M
- 710 NEXT V
- 715 FOR V=169 TO 110 STEP -1
- 720 PSET(160,V),0
- 725 FOR M=1 TO 20:NEXT M
- 730 NEXT V
- 735 FOR K=1 TO 750:NEXT K
- 740 LINE(153,178)-(167,199),0,BF
- 745 FOR K=1 TO 750:NEXT K
- 750 GOSUB 30000 '***Textpad***
- 755 PRINT FNCEN$("Press <C> to continue.",40)
- 760 A$=INKEY$:IF A$="" GOTO 760
- 765 IF A$="C" OR A$="c" GOTO 775
- 770 GOTO 750
- 775 GOSUB 30000 ' ***TEXTPAD***
- 780 PRINT FNCEN$("Next, we fold this corner",40)
- 785 FOR K=1 TO 750:NEXT K
- 790 LINE(154,105)-(160,110)
- 795 LINE-(166,105)
- 800 LINE(160,105)-(160,110),0
- 805 LINE(154,105)-(160,100),0
- 810 LINE-(166,105),0
- 815 LINE-(154,105),0
- 820 PSET(157,107):PSET(163,107)
- 825 FOR K=1 TO 750:NEXT K
- 830 GOSUB 30000 '***Textpad***
- 835 PRINT FNCEN$("back up to this point",40)
- 840 FOR K=1 TO 750:NEXT K
- 845 FOR K=1 TO 15
- 850 CIRCLE(160,60),5
- 855 LINE(158,60)-(162,60)
- 860 LINE(160,58)-(160,62)
- 865 FOR M=1 TO 25:NEXT M
- 870 CIRCLE(160,60),5,0
- 875 LINE(158,60)-(162,60),0
- 880 LINE(160,58)-(160,62),0
- 885 NEXT K
- 890 FOR K=1 TO 750:NEXT K
- 895 GOSUB 30000
- 900 PRINT FNCEN$("across this line,",40)
- 905 FOR K=1 TO 750:NEXT K
- 910 FOR K=1 TO 25
- 915 LINE(131,85)-(189,85),1
- 920 FOR M=1 TO 25:NEXT M
- 925 LINE(131,85)-(189,85),0
- 930 NEXT K
- 935 CIRCLE(212,85),0
- 940 PAINT(212,85),0
- 945 CIRCLE(108,85),0
- 950 PAINT(108,85),0
- 955 FOR H=132 TO 188 STEP 2
- 960 PSET(H,85)
- 965 NEXT H
- 970 FOR K=1 TO 750:NEXT K
- 975 GOSUB 30000 '***tEXTPAD***
- 980 PRINT FNCEN$("SO!",40)
- 985 FOR K=1 TO 750:NEXT K
- 990 LINE(154,105)-(160,100)
- 995 LINE-(166,105)
- 1000 LINE-(154,105)
- 1005 LINE(160,105)-(160,110)
- 1010 LINE(154,105)-(160,110),0
- 1015 LINE-(166,105),0
- 1020 FOR K=1 TO 250:NEXT K
- 1025 FOR V=110 TO 85 STEP -1
- 1030 LINE(131,85)-(160,V),0
- 1035 LINE-(189,85),0
- 1040 LINE(131,85)-(160,V)
- 1045 LINE-(189,85)
- 1050 PSET(160,V),0
- 1055 PSET(157,108):PSET(163,108)
- 1060 NEXT V
- 1065 FOR V=84 TO 60 STEP -2
- 1070 LINE(131,85)-(160,V)
- 1075 LINE-(189,85)
- 1080 LINE(131,85)-(160,V),0
- 1085 LINE-(189,85),0
- 1090 LINE(131,85)-(160,V+1),0
- 1095 LINE-(189,85),0
- 1100 PSET(160,V)
- 1105 NEXT V
- 1110 LINE(147,70)-(160,60)
- 1115 LINE-(173,70)
- 1120 FOR K=1 TO 750:NEXT K
- 1125 GOSUB 30000 '*** Textpad ***
- 1130 PRINT FNCEN$("Press <C> to continue.",40)
- 1135 A$=INKEY$:IF A$="" GOTO 1135
- 1140 IF A$="C" OR A$="c" GOTO 1150
- 1145 GOTO 1125
- 1150 GOSUB 30000 '*** Textpad ***
- 1155 PRINT FNCEN$("Now, we fold the left side of our figure",40)
- 1160 FOR K=1 TO 750:NEXT K
- 1165 FOR K=1 TO 15
- 1170 LINE(160,60)-(131,85),0
- 1175 LINE(147,70)-(114,70),0
- 1180 LINE-(160,170),0
- 1185 LINE-(160,60),0
- 1190 LINE(114,70)-(131,85),0
- 1195 LINE-(160,85),0
- 1200 FOR M=1 TO 25:NEXT M
- 1205 LINE(160,60)-(131,85),3
- 1210 LINE(147,70)-(114,70),3
- 1215 LINE-(160,170),3
- 1220 LINE-(160,60),3
- 1225 LINE(114,70)-(131,85),3
- 1230 LINE-(160,85),3
- 1235 NEXT K
- 1240 PSET(118,73):PSET(126,80)
- 1245 LINE(114,70)-(131,85),0
- 1250 LINE-(160,60),0
- 1255 LINE-(147,70)
- 1260 LINE(131,85)-(160,85),0
- 1265 FOR V=61 TO 85 STEP 2
- 1270 PSET(160,V),0
- 1275 NEXT V
- 1280 LINE(160,85)-(160,170),0
- 1285 FOR K=1 TO 750:NEXT K
- 1290 GOSUB 30000 '***tEXTPAD***
- 1295 PRINT FNCEN$("over to the right side,",40)
- 1300 FOR K=1 TO 750:NEXT K
- 1305 FOR K=1 TO 15
- 1310 LINE(160,60)-(189,85),0
- 1315 LINE(173,70)-(206,70),0
- 1320 LINE-(160,170),0
- 1325 LINE-(160,60),0
- 1330 LINE(206,70)-(189,85),0
- 1335 LINE-(160,85),0
- 1340 FOR M=1 TO 25:NEXT M
- 1345 LINE(160,60)-(189,85),3
- 1350 LINE(173,70)-(206,70),3
- 1355 LINE-(160,170),3
- 1360 LINE-(160,60),3
- 1365 LINE(206,70)-(189,85),3
- 1370 LINE-(160,85),3
- 1375 NEXT K
- 1380 PSET(202,73):PSET(194,80)
- 1385 LINE(206,70)-(189,85),0
- 1390 LINE-(160,60),0
- 1395 LINE-(173,70)
- 1400 LINE(160,85)-(189,85),0
- 1405 FOR V=61 TO 85 STEP 2
- 1410 PSET(160,V),0
- 1415 NEXT V
- 1420 LINE(160,85)-(160,170),0
- 1425 FOR K=1 TO 750:NEXT K
- 1430 GOSUB 30000 '***tEXTPAD***
- 1435 PRINT FNCEN$("SO!",40)
- 1440 FOR K=1 TO 750: NEXT K
- 1445 FOR Q=0 TO 46
- 1450 LINE(160,60)-(131+0.63*Q,85)
- 1455 LINE-(114+Q,70),0
- 1460 LINE-(160,170),0
- 1465 LINE(131+0.63*Q,85)-(114+Q,70)
- 1470 LINE(160,170)-(114+Q,70)
- 1475 LINE(160,170)-(114+Q,70),0
- 1480 LINE(160,60)-(147+0.28*Q,69),0
- 1485 NEXT Q
- 1490 FOR H=160 TO 173
- 1495 LINE(160,60)-(H,70),3
- 1500 LINE(160,170)-(H,70),3
- 1505 LINE(160,69)-(173,69),0
- 1510 NEXT H
- 1515 FOR H=173 TO 206
- 1520 LINE(160,170)-(H,70),3
- 1525 NEXT H
- 1530 FOR K=1 TO 1500:NEXT K
- 1535 GOSUB 30000 '***Textpad***
- 1540 PRINT FNCEN$("Now we're ready for our final folds.",40)
- 1545 FOR K=1 TO 1500:NEXT K
- 1550 GOSUB 30000 '***Textpad***
- 1555 PRINT FNCEN$("But first let's position ourselves",40)
- 1560 FOR K=1 TO 1500:NEXT K
- 1565 PRINT FNCEN$("more comfortably.",40)
- 1570 FOR K=1 TO 1500:NEXT K
- 1575 GOSUB 30000 '***Textpad***
- 1580 PRINT FNCEN$("One moment, please.",40)
- 1585 FOR K=1 TO 1500:NEXT K
- 1590 CLS
- 1591 DEF FNCEN$(V$,X)=SPACE$((X-LEN(V$))/2)+V$
- 1595 FOR A=0 TO 20
- 1600 OUT 66,A:OUT 66,A
- 1605 OUT 97,(INP(97) OR 3)
- 1610 NEXT A
- 1615 SOUND 37,0
- 1620 LINE(255,150)-(10,150)
- 1625 LINE-(245,60)
- 1630 LINE-(225,90)
- 1635 LINE-(255,150)
- 1640 PAINT(160,120),3
- 1645 LINE(216,70)-(226,90),0
- 1650 FOR K=1 TO 750:NEXT K
- 1655 GOSUB 30000 '***Textpad***
- 1660 PRINT FNCEN$("There! That's much better!",40)
- 1665 FOR K=1 TO 1500:NEXT K
- 1670 GOSUB 30000 '***Textpad***
- 1675 PRINT FNCEN$("We now fold this outside corner",40)
- 1680 FOR K=1 TO 250:NEXT K
- 1685 FOR K=1 TO 15
- 1690 PSET(10,158):DRAW"G5 R4 D7 R2 U7 R4 H5"
- 1695 PAINT(10,164)
- 1700 FOR M=1 TO 25:NEXT M
- 1705 CIRCLE (10,164),7,0
- 1710 PAINT(10,164),0
- 1715 NEXT K
- 1720 FOR K=1 TO 500:NEXT K
- 1725 GOSUB 30000 '***Textpad***
- 1730 PRINT FNCEN$("up to roughly this point",40)
- 1735 FOR K=1 TO 15
- 1740 CIRCLE(165,40),5,3
- 1745 LINE(163,40)-(167,40),3
- 1750 LINE(165,38)-(165,42),3
- 1755 FOR M=1 TO 25:NEXT M
- 1760 CIRCLE(165,40),5,0
- 1765 LINE(163,40)-(167,40),0
- 1770 LINE(165,38)-(165,42),0
- 1775 NEXT K
- 1780 CIRCLE(165,40),5,0
- 1785 PSET(165,40),0
- 1790 FOR K=1 TO 500:NEXT K
- 1795 GOSUB 30000 '***Textpad***
- 1800 PRINT FNCEN$("along about this line",40)
- 1805 FOR K=1 TO 500:NEXT K
- 1810 FOR K=1 TO 25
- 1815 LINE(105,114)-(141,150),3
- 1820 FOR M=1 TO 25:NEXT M
- 1825 LINE(105,114)-(141,150),0
- 1830 NEXT K
- 1835 FOR K=1 TO 500:NEXT K
- 1840 GOSUB 30000 '***Textpad***
- 1845 PRINT FNCEN$("to set our ears at a jaunty angle,",40)
- 1850 FOR K=1 TO 1500:NEXT K
- 1855 GOSUB 30000 '***Textpad***
- 1860 PRINT FNCEN$("SO!",40)
- 1865 FOR K=1 TO 1000:NEXT K
- 1870 FOR Q=0 TO 95
- 1875 LINE(105,114)-(10+Q,150-0.38*Q),0
- 1880 LINE-(141,150),0
- 1885 LINE(105,114)-(10+Q,150-0.38*Q)
- 1890 LINE-(141,150)
- 1895 NEXT Q
- 1900 FOR Q=O TO 74
- 1905 LINE(141,150)-(105+0.81*Q,114-Q),0
- 1910 LINE(105,114)-(105+0.81*Q,114-Q)
- 1915 LINE-(141,150)
- 1920 LINE(141,150)-(105+0.81*Q,114-Q)
- 1925 LINE(105,114)-(141,150),0
- 1930 LINE(105+0.32*Q,114-0.39*Q)-(130+0.32*Q,114-0.29*Q)
- 1935 NEXT Q
- 1940 LINE(166,40)-(142,150),0
- 1945 FOR Q=0 TO 26
- 1950 LINE(129+Q,85)-(108+Q,111)
- 1955 NEXT Q
- 1960 FOR K=1 TO 750:NEXT K
- 1965 GOSUB 30000 '*** Textpad ***
- 1970 PRINT FNCEN$("Press <C> to continue.",40)
- 1975 A$=INKEY$:IF A$="" GOTO 1975
- 1980 IF A$="C" OR A$="c" GOTO 1990
- 1985 GOTO 1965
- 1990 GOSUB 30000 '***Textpad***
- 1995 PRINT FNCEN$("and likewise with our other ear,",40)
- 2000 FOR K=1 TO 1500:NEXT K
- 2005 GOSUB 30000 '*** <Textpad> ***
- 2010 PRINT FNCEN$("SO!",40)
- 2015 FOR K=1 TO 750:NEXT K
- 2020 FOR Q=0 TO 95
- 2025 LINE(105,114)-(10+Q,150-0.38*Q),0
- 2030 LINE-(141,150),0
- 2035 LINE(105,114)-(10+Q,150-0.38*Q)
- 2040 LINE(10+Q,150-0.38*Q)-(141,150),0
- 2045 LINE(10+Q,151-0.38*Q)-(141,151),0
- 2050 LINE(16,147)-(103,114),0
- 2055 NEXT Q
- 2060 FOR Q=O TO 74
- 2065 LINE(141,150)-(105+0.81*Q,114-Q),1
- 2070 LINE(105,114)-(105+0.81*Q,114-Q)
- 2075 LINE-(141,150)
- 2080 LINE(141,150)-(105+0.81*Q,114-Q)
- 2085 LINE(105,114)-(141,150),0
- 2090 NEXT Q
- 2095 LINE(166,40)-(142,150),0
- 2100 LINE(105,114)-(150,42),3
- 2105 LINE-(155,60),3
- 2110 PAINT(145,60),3
- 2115 PSET(114,101):PSET(113,102):PSET(113,103):PSET(112,104)
- 2120 LINE(105,114)-(154,53),0
- 2125 FOR K=1 TO 1500:NEXT K
- 2130 GOSUB 30000 '***Textpad***
- 2135 PRINT FNCEN$("There! I'm done!",40)
- 2140 FOR K=1 TO 1500:NEXT K
- 2145 GOSUB 30000 '***Textpad***
- 2150 PRINT FNCEN$("If you'd like, you might give me",40)
- 2155 FOR K=1 TO 1500:NEXT K
- 2160 GOSUB 30000 '***Textpad***
- 2165 PRINT FNCEN$("an eye,",40)
- 2170 FOR K=1 TO 1000:NEXT K
- 2175 CIRCLE(135,95),4,0
- 2180 CIRCLE(135,95),2,0
- 2185 PSET(135,95),0
- 2190 FOR K=1 TO 1500:NEXT K
- 2195 PRINT FNCEN$("a nose,",40)
- 2200 FOR K=1 TO 1000:NEXT K
- 2205 CIRCLE(110,113),4,0
- 2210 PAINT(110,113),0
- 2215 CIRCLE(110,113),4,3
- 2220 FOR K=1 TO 1500:NEXT K
- 2225 PRINT FNCEN$("and some whiskers.",40)
- 2230 FOR K=1 TO 1000:NEXT K
- 2235 LINE(117,111)-(125,107),0
- 2240 LINE(117,108)-(125,100),0
- 2245 LINE(117,114)-(125,118),0
- 2250 FOR K=1 TO 1500:NEXT K
- 2255 GOSUB 30000 '***Textpad***
- 2260 PRINT FNCEN$("Mission accomplished!",40)
- 2265 FOR K=1 TO 1500:NEXT K
- 2270 GOSUB 30000 '*** Textpad ***
- 2275 PRINT FNCEN$(" Press <1> - To return to MAIN MENU.",40)
- 2280 PRINT FNCEN$(" <2> - To repeat RABBIT.",40)
- 2285 PRINT FNCEN$(" <3> - To exit from program.",40)
- 2290 E$=INPUT$(1)
- 2295 IF E$<"1" OR E$>"3" GOTO 2290
- 2300 SEL=VAL(E$)
- 2305 COMMON SEL
- 2310 CLS
- 2315 LOCATE 13,1:PRINT FNCEN$("One moment, please.",40)
- 2316 LINE(70,75)-(250,125),3,B
- 2320 ON SEL GOTO 2325,2330,2335
- 2325 CHAIN"a:main"
- 2330 CHAIN"a:rabbit
- 2335 CHAIN"a:end"
- 8999 END
- 30000 LOCATE 1,1
- 30010 PRINT " "
- 30020 LOCATE 1,1:RETURN
-